package com.lwf.fatapi.service;

import com.lwf.fatapi.entities.SysRole;
import com.mybatisflex.core.paginate.Page;

import java.util.List;

/**
 * 系统角色服务接口
 *
 * @author lwf
 */
public interface SysRoleService {

    /**
     * 创建角色
     */
    boolean createRole(SysRole role);

    /**
     * 更新角色
     */
    boolean updateRole(Long id, SysRole role);

    /**
     * 删除角色
     */
    boolean deleteRole(Long id);

    /**
     * 根据ID查询角色
     */
    SysRole getRoleById(Long id);

    /**
     * 根据角色编码查询角色
     */
    SysRole getRoleByCode(String roleCode);

    /**
     * 分页查询角色列表
     */
    Page<SysRole> getRolePage(int pageNo, int pageSize, String keyword);

    /**
     * 查询所有角色列表
     */
    List<SysRole> getAllRoles();

    /**
     * 根据用户ID查询角色列表
     */
    List<SysRole> getRolesByUserId(Long userId);

    /**
     * 启用/禁用角色
     */
    boolean toggleRoleStatus(Long id, Integer status);
}
